문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 id Tech 엔진 (문단 편집) === id Tech 2 <[[퀘이크(게임)|퀘이크]]> / <[[퀘이크 2]]> === [[파일:attachment/uploadfile/idtech2.jpg|width=570]] [[퀘이크]] 1 엔진과 [[퀘이크 2]] 엔진은 id Tech 2로 개명되었다. 분명히 공식적으로 퀘이크 1 엔진과 퀘이크 2 엔진을 아우르는 명칭이지만, 해외 위키피디아나 게임 포럼등에서는 퀘이크 2 엔진을 id Tech 2로, 퀘이크 1 엔진은 별도의 "퀘이크 엔진"으로 구분하고 있다. 그 와중에 둠 엔진은 id Tech 1로 구분하면서 그 중간에 놓은 퀘이크 1 엔진만 id Tech에 포함하지 않고 있으며, 위키피디아에 id Tech 2에 퀘이크 1 엔진도 포함하는 것으로 수정을 해도 누군가가 계속 퀘이크 1 엔진을 id Tech 2가 아닌 별도의 "퀘이크 엔진"으로 구분해 놓는 짓을 저지르고 있다. 퀘이크 1과 퀘이크 2의 소스 코드를 살펴 보면 전체적인 구조가 상당히 다르다. 기본 MS-DOS용으로 개발되어 윈도우용 포팅과, 네트워크 엔진 강화 버전인 QuakeWorld, [[OpenGL]] 지원용 GLQuake 등 별도의 실행 파일로 만들어지는 퀘이크 1과 비교하면 퀘이크 2는 윈도우 전용인 DLL 구조로 코드의 각 기능이 분리되어 있고 별도의 DLL 파일로 컴파일된다. 그러나 퀘이크 1, 퀘이크 2가 id Tech 2로 통칭되는 이유는 '''코드의 구조를 떠나서 어차피 퀘이크 1이나 퀘이크 2나 전체 소스 코드의 규모가 매우 작고, 전체에서 비중이 가장 큰 부분이 렌더링 코드'''인데 '''퀘이크 2 렌더링 코드의 약 98% 이상이 퀘이크 1의 렌더링 코드를 거의 그대로 사용'''했기 때문이다. 퀘이크 1에서 quake.exe나 winquake.exe에 컴파일되는 소프트웨어 렌더러는 퀘이크 2에서 ref_soft.dll 파일로 컴파일되며, glquake.exe나 vquake.exe 등에 컴파일되는 오픈GL 렌더러는 ref_gl.dll 파일로 컴파일된다. 그리고 나머지 코드도 전체 도스의 구조가 단지 도스 기반에서 윈도우 DLL 기반으로 변경됐을 뿐, 네트워크, 클라이언트, 사운드 등 주요 기능 구현 코드가 그대로 사용되어, 전체 코드를 비교했을 때 퀘이크 2 코드의 약 80%가 퀘이크 1의 코드를 그대로 사용하고 있다. 퀘이크 2의 네트워크 코드는 퀘이크 1의 네트워크 코드 강화 클라이언트 패치 실행 파일인 quakeworld의 네트워크 코드를 사용한다. 달라진 부분은 게임플레이 스크립트에 사용되는 퀘이크 1의 QuakeC 대신 퀘이크 2에서는 C를 사용한다는 점이다. 퀘이크 2는 게임플레이 스크립트가 gamex86.dll 파일에 컴파일되어 각 MOD별 폴더에 담아 실행할 수 있다. 퀘이크 1과 퀘이크 2가 id Tech 2로 통일된 이유는 위의 설명처럼 소스 코드의 구조를 논하기 전에, 전체 코드의 규모가 매우 작으며, 그중 가장 비중이 큰 렌더링 코드가 약 98% 이상 동일하기 때문이다. 비유를 한다면 둠 엔진으로 헥센을 만든 수준인 것이다. 케이크를 만드는 것에 비유를 한다면 동일한 버터크림(렌더링 코드), 동일한 반죽(네트워크 코드), 동일한 시럽(사운드 코드) 등으로 네모난 케이크(퀘이크 1 소스 구조)를 만들었는지, 동그란 케이크(퀘이크 2 소스 구조)를 만들었는지의 차이며, 위에 올라가는 데코레이션으로 과자(퀘이크 1의 QuakeC 게임플레이 코드)나, 생과일(퀘이크 2의 C를 사용한 DLL 게임플레이 코드)처럼 바로 위에 보여지는 일부 재료가 다르고 케이크의 모양이 다르더라도 주요 재료가 모두 같으므로 둘 다 버터크림 케이크라고 부르는 것과 같다. 조금 더 상세하게 따지고 본다면 '''id Tech 엔진의 버전 숫자를 올리는 기준은 렌더러'''라고 볼 수 있다. 네트워크 코드 같은 것은 퀘이크 1에서도 오리지널 퀘이크와 네트워크 강화 버전인 퀘이크 월드의 네트워크 코드가 완전히 다르고, 퀘이크 2도 패치를 통해 네트워크 코드가 거의 전면 교체되기도 했다. 퀘이크 3에서도 마찬가지로 네트워크 코드가 패치를 통해 몇 번이나 교체되기도 했는데, 렌더러는 패치로 교체된 적이 당연히 있을 수 없으며, 퀘이크 1, 2의 전체 코드에서 거의 완전히 동일한 것은 렌더러이므로, 같은 id Tech 2를 유지하는 것이다. 퀘이크 3 엔진과 리턴 투 울펜슈타인 역시 렌더러 코드가 98% 이상 동일하다. 게임플레이 코드는 완전히 대체되었고, AI 코드도 퀘이크 3의 멀티플레이 AI와는 전혀 다른 새로운 코드다. 리추얼 우버툴의 경우도 사실상 렌더러를 제외한 모든 코드가 리추얼의 자체 개발한 코드라고 볼 수 있는데 그럼에도 그것들은 모두 id Tech 3로, 당시에는 퀘이크 3 엔진이라고 불렸으며, 그것에 이의는 없었다. 둠 3 엔진의 경우, 오리지널 둠 3 소스 코드와 둠 3 BFG 에디션의 소스를 보면, 렌더러를 제외한 많은 부분이 재작성되었다. 사운드 엔진이 새롭게 교체되었으며, UI 코드의 많은 부분이 재작성되었고, 파일 시스템도 재작성되어 게임의 파일 구조도 많이 다르다. 그럼에도 둠 3 BFG 에디션이 id Tech 4가 아니라고 하지 않는다. id Tech 5인 레이지의 경우, 둠 3 엔진을 바탕으로 개발을 시작해서 파일 시스템, 게임플레이, UI 같은 코드 등 많은 부분들이 둠 3 BFG 에디션과 같은 것으로 보이는데, 렌더러가 완전히 새롭게 재작성되어 id Tech 5로 불리는 것이다. id Tech 6인 둠(2016)의 경우, id Tech 5(레이지)를 바탕으로 개발했으며, 렌더러는 메가텍스처 사용 부분을 제외하고는 거의 다 새로운 코드로 대체되었는데, 게임플레이나 나머지 부분의 코드는 레이지의 코드를 거의 그대로 사용한 흔적이 보이나, 렌더러가 새로운 것이기 때문에 id Tech 6로 불린다. id Tech 7인 둠 이터널의 경우, 게임으로만 봤을 때 id Tech 6(둠 2016)과 거의 차이가 없는 확장팩 수준으로 보이고, 실제로도 id Tech 6의 게임플레이, 파일 시스템, UI 등 거의 모든 코드를 그대로 사용했지만 렌더러는 내부를 완전히 새롭게 재작성했다. 게임 그래픽도 비슷하고 렌더링 스타일도 같아서, 단지 같은 렌더러를 최적만가 개선한 것으로 보일 수 있으나, 그 최적화를 위해서 렌더링 코드 거의 전부를 재작성했다. 3D 월드 구현에서 가장 기본적인 지오메트리 처리부터 같은 연산처리 속도에서 훨씬 많은 처리를 효율적으로 할 수 있도록 코드가 완전히 재작성됐으며, 머티리얼 처리, 라이팅 처리 등 모든 구현 부분이 재작성되었기 때문에, 사실상 렌더링 코드는 완전히 새로운 것이고, 그래서 id Tech 7로 버전 숫자가 올라간 것이다. 퀘이크 1, 퀘이크 2의 데이터 파일은 PAK라는 파일 덩어리로 되어 있는데, 이것은 둠의 WAD 파일처럼 여러개의 파일을 패키지로 묶어 주는 것으로, WAD와는 다른 포맷이지만, 여전히 압축파일이 아니며 단순한 패키지 파일이다. 이것 역시 이드 소프트웨어의 자체 개발 포맷이다. 다만 PAK이라는 확장자는 수 많은 곳에서 사용하고 있는데, id Tech 2 게임들을 제외하면 그것들은 퀘이크 1, 2에서 사용한 포맷을 사용하지 않는 모두 각자의 포맷이다. 예를 들면, 라그나로크 온라인도 PAK 확장자를 가진 파일을 사용하고, 크라이엔진도 PAK 확장자를 가진 파일을 사용하며, 언리얼 엔진 4도 프로젝트를 배포할 경우 PAK 확장자를 가진 파일로 묶을 수 있는데, 이것들은 퀘이크 1, 2의 PAK 파일 포맷과는 어떤 연관도 없다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기